#include <iostream>
#include <signal.h>
#include <unistd.h>
#include <sys/types.h>

void handler(int signo)
{
    std::cout << "我执行了信号: " << signo << std::endl;
}

int main()
{
    // 信号处理：
    // signal(SIGINT/*2*/, SIG_IGN);//SIG_IGN表示对该信号执行忽略处理
    // signal(SIGINT/*2*/, SIG_DFL);//SIG_DFL表示对该信号执行默认动作

    //signal只需要注册一次，后面如果没有收到还信号就不会执行
    //CTRL+c: 信号2(SIGINT)
    // signal(2, handler);//自定义捕捉
    //ctrl + \ : 信号3(SIGQUIT)
    // signal(3, handler);

    //不是所有信号都会被自定义捕捉，9、19号不可被捕捉、忽略
    for(int i = 1; i <= 31; ++i)
        signal(i, handler);

    while(true)
    {
        std::cout << "我是一个进程: " << getpid() << std::endl;
        sleep(1);
    }
    return 0;
}